The present invention relates to data communications and telecommunications, more particularly to automated services that may be provided to telephone and computer users via a telephone network, and even more particularly to techniques for creating such automated services.
It is known to provide various types of automated services to telephone users. A user may access such services merely by placing a telephone call to an automated server. Upon establishment of a connection, the automated server may prompt the user with pre-recorded voice messages (e.g., "If you would like to listen to information about traffic conditions, press 3"). The user makes selections by pressing one or more appropriate keys on the telephone, which causes dual tone multi-frequency (DTMF) tones to be transmitted to the automated server. Operation of the automated server is then performed in response to which DTMF tones were received.
In order to improve the quality and variety of automated services that may be offered, a number of manufacturers now make and sell telephones having expanded input and output capabilities. An example is illustrated in FIG. 1. In this example, an expanded capability telephone 101 is coupled to an automated server 105 by means of a public switched telephone network (PSTN) 103. The automated server may be an application program running on a general purpose digital computer, or alternatively may be a hardwired (i.e., non-programmable) device.
The expanded capability telephone 101 includes not only a standard numerical keypad 107 and handset 109, but also a screen 111 for displaying visual information, and a number of so-called "softkeys" 113. Information to be displayed on the screen 111 is transmitted from the automated server 105 to the expanded capability telephone 101 via the PSTN 103.
The softkeys 113 are termed that because their function is determined by the automated server 105 and executed by the expanded capability telephone 101 when the softkey 113 is activated by a user. The programs for the softkeys 113 may typically be downloaded from the automated server 105 by means of the PSTN 103. One example of a possible softkey function is to move the position of a selection cursor that is currently being displayed on the screen 111. Another one of the softkeys 113 might be programmed to send a DTMF-encoded message to the automated server 105, indicating the present screen location of a selection cursor (and thereby indicating which of a number of displayed selection possibilities has been selected by the user).
In order for the above-described system to be operational, it is necessary for the automated server 105 and the expanded capability telephone 101 to use a mutually agreed-upon protocol for the transmission of information through the PSTN 103. Where a manufacturer makes both the automated server 105 and the expanded capability telephone 101, the protocol can be defined on an ad hoc basis. However, in order to promote the widespread development of automated services, and to permit automated servers 105 developed by one manufacturer to operate with expanded capability telephones 101 developed and made by a different manufacturer, a standardized protocol is needed. One such standard protocol, called the Analog Display Services Interface (ADSI), has been defined by Bellcore, and described in the following documents which are hereby incorporated by reference herein: Bellcore FR-12 "ADSI Guide", 1994, including: Bellcore TR-NWT-001273, "Generic Requirements for an SPCS to Customer Premises Equipment Data Interface for Analog Display Services"; Bellcore TR-NWT-000030, "Voiceband Data Transmission Interface Generic Requirements"; Bellcore SR-INS-002461, "Customer Premises Equipment Compatibility Considerations for the Analog Display Services Interface"; Bellcore SR-TSV-002476, "Customer Premises Equipment Compatibility Considerations for the Voiceband Data Transmission Interface"; Bellcore SR-TSV-002697, "An Encryption Capability for the Analog Display Services Interface"; Bellcore SR-NWT-002495, "Guidelines for Writing Applications Which Use the ADSI for Data Communications"; Bellcore SR-TSV-002578, "A Method and Apparatus for Detecting a Dual Tone Signal in the Presence of Speech"; Bellcore SR-INS-002726, "Classes of Customer Premises Equipment"; Bellcore SR-NWT-003004, "Testing Guidelines for Analog Type 1, 2 and 3 CPE"; and SR-3034, "ADSI Script Management".
One aspect of the ADSI standard is the definition of the Customer Premises Equipment (CPE), which is an abstract expanded capability telephone having a screen (for displaying a title, information and overwritable user input fields), a keypad, and six softkeys.
The ADSI protocol, then, defines the way voice and data will be communicated over an existing analog telephone network between an automated server 105 and an expanded capability telephone 101 that supports the features and functions that have been defined for the CPE. In addition to real-time interactive applications (using an ADSI capability called "Server Display Control" or SDC), an ADSI capability called "Feature Download" also enables a program to be downloaded from an automated server 105 to the CPE-compatible expanded capability telephone 101. The downloaded program (often referred to as a "script") is run (interpreted) on the expanded capability telephone 101, and remains resident in the expanded capability telephone 101 until it is erased by the user. The Feature Download capability permits a telephone company to download a call management (telephony) script tailored to an individual's service subscription. As a result, the individual can activate services such as three-way calling, call waiting, call forwarding and the like through context sensitive screen prompts and softkeys.
An example of a feature that can be implemented by means of an advanced call management telephony script is a service which, in some regions, is called "Call Waiting Deluxe". Call Waiting Deluxe lets a user know who is calling when call waiting is activated. In addition, operation of one of a number of push buttons allows the user to:
switch to the new call; PA1 add the new call (i.e., conference call); PA1 forward the new call to the user's voice mail; PA1 put the new caller on hold with a hold announcement and music; PA1 play back a busy message telling the new caller to call back later; or PA1 drop the current call and switch to the new call.
The use of feature download scripts and SDC may provide such applications as visual voice mail, electronic white pages (directory service), home shopping, and restaurant menu ordering. This list is not intended to be exhaustive, but merely illustrative of the types of applications that can be created for an expanded capability telephone 101.
As mentioned above, the use of ADSI-based services conventionally requires that the user have an ADSI-capable device. Such devices have been made in the form of screen phones, personal digital assistants (PDAs), pagers, ADSI-capable personal computers (PCs), and even television set-top boxes that permit a call to be made by means of a television set.
Creating applications for an automated server 105 is no simple matter, because ADSI is a complex protocol with many detailed requirements that must be followed. As a result of ad hoc development techniques, new applications for automated servers 105 may be slow to come to market. Therefore, it is desirable to provide techniques and tools for simplifying the automated server application development process.